home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / util / gnu / patch_2_1.lha / patch-2.1 / diffsamiga-patch.diffs < prev   
Text File  |  1993-06-23  |  16KB  |  675 lines

  1. diff -cr ram:patch-2.1/backupfile.c dh1:patch-2.1/backupfile.c
  2. *** ram:patch-2.1/backupfile.c    Thu Jun 10 06:58:04 1993
  3. --- dh1:patch-2.1/backupfile.c    Wed Jun 23 18:01:04 1993
  4. ***************
  5. *** 34,39 ****
  6. --- 34,44 ----
  7.   #include <unistd.h>
  8.   #endif
  9.   
  10. + #ifdef AMIGA
  11. + #include <sys/dir.h>
  12. + #define direct dirent
  13. + #define NLENGTH(direct) ((direct)->d_namlen)
  14. + #else
  15.   #if defined(DIRENT) || defined(_POSIX_VERSION)
  16.   #include <dirent.h>
  17.   #define NLENGTH(direct) (strlen((direct)->d_name))
  18. ***************
  19. *** 50,55 ****
  20. --- 55,61 ----
  21.   #include <ndir.h>
  22.   #endif /* NDIR */
  23.   #endif /* DIRENT or _POSIX_VERSION */
  24. + #endif /* AMIGA */
  25.   
  26.   #ifndef isascii
  27.   #define ISDIGIT(c) (isdigit ((unsigned char) (c)))
  28. ***************
  29. *** 65,76 ****
  30. --- 71,90 ----
  31.   #define REAL_DIR_ENTRY(dp) ((dp)->d_ino != 0)
  32.   #endif
  33.   
  34. + #ifdef AMIGA
  35. + #define max(a,b) (((a)>(b))?(a):(b))
  36. + #endif /* AMIGA */
  37.   /* Which type of backup file names are generated. */
  38.   enum backup_type backup_type = none;
  39.   
  40.   /* The extension added to file names to produce a simple (as opposed
  41.      to numbered) backup file name. */
  42. + #ifndef AMIGA
  43.   char *simple_backup_suffix = "~";
  44. + #else /* AMIGA */
  45. + char *simple_backup_suffix = "!";
  46. + #endif /* AMIGA */
  47.   
  48.   char *basename ();
  49.   char *dirname ();
  50. ***************
  51. *** 86,97 ****
  52. --- 100,120 ----
  53.   basename (name)
  54.        char *name;
  55.   {
  56. + #ifndef AMIGA
  57.     char *r = name, *p = name;
  58.   
  59.     while (*p)
  60.       if (*p++ == '/')
  61.         r = p;
  62.     return r;
  63. + #else /* AMIGA */
  64. +   char *base1, *base2, *base;
  65. +   base1 = rindex (name, '/');
  66. +   base2 = rindex (name, ':');
  67. +   base = max (base1, base2);
  68. +   return base ? base + 1 : name;
  69. + #endif /* AMIGA */
  70.   }
  71.   
  72.   #ifndef NODIR
  73. ***************
  74. *** 112,121 ****
  75. --- 135,152 ----
  76.       {
  77.         char *s = malloc (strlen (file) + strlen (simple_backup_suffix) + 1);
  78.         strcpy (s, file);
  79. + #ifndef AMIGA
  80.         addext (s, simple_backup_suffix, '~');
  81. + #else /* AMIGA */
  82. +       addext (s, simple_backup_suffix, '!');
  83. + #endif /* AMIGA */
  84.         return s;
  85.       }
  86. + #ifndef AMIGA
  87.     base_versions = concat (basename (file), ".~");
  88. + #else /* AMIGA */
  89. +   base_versions = concat (basename (file), ".!");
  90. + #endif /* AMIGA */
  91.     if (base_versions == 0)
  92.       return 0;
  93.     dir = dirname (file);
  94. ***************
  95. *** 180,186 ****
  96. --- 211,221 ----
  97.     backup_name = malloc (strlen (file) + 16);
  98.     if (backup_name == 0)
  99.       return 0;
  100. + #ifndef AMIGA
  101.     sprintf (backup_name, "%s.~%d~", file, version);
  102. + #else /* AMIGA */
  103. +   sprintf (backup_name, "%s.!%d!", file, version);
  104. + #endif /* AMIGA */
  105.     return backup_name;
  106.   }
  107.   
  108. ***************
  109. *** 202,208 ****
  110. --- 237,247 ----
  111.       {
  112.         for (p = &backup[base_length]; ISDIGIT (*p); ++p)
  113.       version = version * 10 + *p - '0';
  114. + #ifndef AMIGA
  115.         if (p[0] != '~' || p[1])
  116. + #else /* AMIGA */
  117. +       if (p[0] != '!' || p[1])
  118. + #endif /* AMIGA */
  119.       version = 0;
  120.       }
  121.     return version;
  122. ***************
  123. *** 235,240 ****
  124. --- 274,280 ----
  125.   dirname (path)
  126.        char *path;
  127.   {
  128. + #ifndef AMIGA
  129.     char *newpath;
  130.     char *slash;
  131.     int length;    /* Length of result, not including NUL. */
  132. ***************
  133. *** 260,265 ****
  134. --- 300,334 ----
  135.     strncpy (newpath, path, length);
  136.     newpath[length] = 0;
  137.     return newpath;
  138. + #else /* AMIGA */
  139. +   char *newpath;
  140. +   char *slash, *colon, *dirsep;
  141. +   int length;    /* Length of result, not including NUL. */
  142. +   slash = rindex (path, '/');
  143. +   colon = rindex (path, ':');
  144. +   dirsep = max (slash, colon);
  145. +   if (dirsep == 0)
  146. +     {
  147. +       /* File is in the current directory.  */
  148. +       path = "";
  149. +       length = 0;
  150. +     }
  151. +   else
  152. +     {
  153. +       /* Remove one trailing slash from result, if exists. */
  154. +       if (dirsep > path && *dirsep == '/')
  155. +         --dirsep;
  156. +       length = dirsep - path + 1;
  157. +     }
  158. +   newpath = malloc (length + 1);
  159. +   if (newpath == 0)
  160. +     return 0;
  161. +   strncpy (newpath, path, length);
  162. +   newpath[length] = 0;
  163. +   return newpath;
  164. + #endif /* AMIGA */
  165.   }
  166.   
  167.   /* If ARG is an unambiguous match for an element of the
  168. ***************
  169. *** 379,385 ****
  170.       }
  171.   #endif
  172.     if (slen_max == -1) {
  173. ! #if HAVE_LONG_FILE_NAMES
  174.       slen_max = 255;
  175.   #else
  176.       slen_max = 14;
  177. --- 448,454 ----
  178.       }
  179.   #endif
  180.     if (slen_max == -1) {
  181. ! #ifdef HAVE_LONG_FILE_NAMES
  182.       slen_max = 255;
  183.   #else
  184.       slen_max = 14;
  185. diff -cr ram:patch-2.1/getopt.c dh1:patch-2.1/getopt.c
  186. *** ram:patch-2.1/getopt.c    Wed Jun 09 13:05:42 1993
  187. --- dh1:patch-2.1/getopt.c    Wed Jun 23 17:55:51 1993
  188. ***************
  189. *** 42,50 ****
  190. --- 42,52 ----
  191.   #endif /* alloca.h */
  192.   #endif /* not __GNUC__ */
  193.   
  194. + #ifndef AMIGA
  195.   #if !__STDC__ && !defined(const) && IN_GCC
  196.   #define const
  197.   #endif
  198. + #endif /* !AMIGA */
  199.   
  200.   /* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.  */
  201.   #ifndef _NO_PROTO
  202. diff -cr ram:patch-2.1/getopt1.c dh1:patch-2.1/getopt1.c
  203. *** ram:patch-2.1/getopt1.c    Fri May 07 21:29:54 1993
  204. --- dh1:patch-2.1/getopt1.c    Wed Jun 23 17:56:28 1993
  205. ***************
  206. *** 22,30 ****
  207. --- 22,32 ----
  208.   
  209.   #include "getopt.h"
  210.   
  211. + #ifndef AMIGA
  212.   #if !__STDC__ && !defined(const) && IN_GCC
  213.   #define const
  214.   #endif
  215. + #endif /* !AMIGA */
  216.   
  217.   #include <stdio.h>
  218.   
  219. diff -cr ram:patch-2.1/inp.c dh1:patch-2.1/inp.c
  220. *** ram:patch-2.1/inp.c    Tue Jun 08 17:23:00 1993
  221. --- dh1:patch-2.1/inp.c    Wed Jun 23 17:58:26 1993
  222. ***************
  223. *** 79,86 ****
  224. --- 79,88 ----
  225.       int ifd, statfailed;
  226.       Reg1 char *s;
  227.       Reg2 LINENUM iline;
  228. + #ifndef AMIGA
  229.       char lbuf[MAXLINELEN];
  230.       int output_elsewhere = strcmp(filename, outname);
  231. + #endif /* !AMIGA */
  232.   
  233.       statfailed = stat(filename, &filestat);
  234.       if (statfailed && ok_to_create_file) {
  235. ***************
  236. *** 90,95 ****
  237. --- 92,98 ----
  238.       close(creat(filename, 0666));
  239.       statfailed = stat(filename, &filestat);
  240.       }
  241. + #ifndef AMIGA
  242.       /* For nonexistent or read-only files, look for RCS or SCCS versions.  */
  243.       if (statfailed
  244.       || (! output_elsewhere
  245. ***************
  246. *** 155,160 ****
  247. --- 158,168 ----
  248.       }
  249.       }
  250.       filemode = filestat.st_mode;
  251. + #else /* AMIGA */
  252. +     if (statfailed)
  253. +     fatal2("can't find %s\n", filename);
  254. +     filemode = filestat.st_mode;
  255. + #endif /* AMIGA */
  256.       if (!S_ISREG(filemode))
  257.       fatal2("%s is not a normal file--can't patch\n", filename);
  258.       i_size = filestat.st_size;
  259. diff -cr ram:patch-2.1/patch.c dh1:patch-2.1/patch.c
  260. *** ram:patch-2.1/patch.c    Sun May 30 18:46:14 1993
  261. --- dh1:patch-2.1/patch.c    Wed Jun 23 17:40:27 1993
  262. ***************
  263. *** 90,95 ****
  264. --- 90,99 ----
  265.    * 
  266.    */
  267.   
  268. + #ifdef AMIGA
  269. + #include <dos.h>
  270. + #include <proto/exec.h>
  271. + #endif /* AMIGA */
  272.   #include "INTERN.h"
  273.   #include "common.h"
  274.   #include "EXTERN.h"
  275. ***************
  276. *** 116,121 ****
  277. --- 120,129 ----
  278.   bool similar();
  279.   void re_input();
  280.   void my_exit();
  281. + #ifdef AMIGA
  282. + void amiga_exit();
  283. + static char curpath[256];
  284. + #endif /* AMIGA */
  285.   
  286.   /* TRUE if -E was specified on command line.  */
  287.   static int remove_empty_files = FALSE;
  288. ***************
  289. *** 140,149 ****
  290. --- 148,169 ----
  291.       bool rev_okayed = 0;
  292.       int i;
  293.   
  294. + #ifdef AMIGA
  295. +     if (!onexit (amiga_exit)) {
  296. +       fputs ("Couldn't set exit trap.\n", stderr);
  297. +       exit (20);
  298. +     }
  299. +     if (getcwd(curpath,256) == NULL) {
  300. +       fputs ("Couldn't get current path.\n", stderr);
  301. +       exit (20);
  302. +     }
  303. + #endif /* AMIGA */
  304.       setbuf(stderr, serrbuf);
  305.       for (i = 0; i<MAXFILEC; i++)
  306.       filearg[i] = Nullch;
  307.   
  308. + #ifndef AMIGA
  309.       myuid = getuid();
  310.   
  311.       /* Cons up the names of the temporary files.  */
  312. ***************
  313. *** 178,183 ****
  314. --- 198,223 ----
  315.         strcat (TMPPATNAME, "/patchpXXXXXX");
  316.         Mktemp(TMPPATNAME);
  317.       }
  318. + #else /* AMIGA */
  319. +     /* Cons up the names of the temporary files.  */
  320. +     {
  321. +       struct Task *Task;
  322. +       Task = FindTask (NULL);
  323. +       TMPOUTNAME = (char *) malloc (20);
  324. +       sprintf (TMPOUTNAME, "T:patcho%08lx", Task);
  325. +       TMPINNAME = (char *) malloc (20);
  326. +       sprintf (TMPINNAME, "T:patchi%08lx", Task);
  327. +       TMPREJNAME = (char *) malloc (20);
  328. +       sprintf (TMPREJNAME, "T:patchr%08lx", Task);
  329. +       TMPPATNAME = (char *) malloc (20);
  330. +       sprintf (TMPPATNAME, "T:patchp%08lx", Task);
  331. +     }
  332. + #endif /* AMIGA */
  333.   
  334.       {
  335.         char *v;
  336. ***************
  337. *** 364,370 ****
  338. --- 404,414 ----
  339.           && statbuf.st_size == 0) {
  340.           if (verbose)
  341.               say2("Removing %s (empty after patching).\n", realout);
  342. + #ifndef AMIGA
  343.               while (unlink(realout) >= 0) ; /* while is for Eunice.  */
  344. + #else /* AMIGA */
  345. +             Unlink(realout);
  346. + #endif /* AMIGA */
  347.           }
  348.       }
  349.       Fclose(rejfp);
  350. ***************
  351. *** 942,945 ****
  352. --- 986,1003 ----
  353.       }
  354.       Unlink(TMPPATNAME);
  355.       exit(status);
  356. + }
  357. + void
  358. + amiga_exit()
  359. + {
  360. +     unlink(TMPINNAME);
  361. +     if (!toutkeep) {
  362. +     Unlink(TMPOUTNAME);
  363. +     }
  364. +     if (!trejkeep) {
  365. +     Unlink(TMPREJNAME);
  366. +     }
  367. +     Unlink(TMPPATNAME);
  368. +     chdir(curpath);
  369.   }
  370. diff -cr ram:patch-2.1/pch.c dh1:patch-2.1/pch.c
  371. *** ram:patch-2.1/pch.c    Tue Jun 01 03:54:18 1993
  372. --- dh1:patch-2.1/pch.c    Wed Jun 23 17:41:09 1993
  373. ***************
  374. *** 1246,1251 ****
  375. --- 1246,1252 ----
  376.   void
  377.   do_ed_script()
  378.   {
  379. + #ifndef AMIGA
  380.       Reg1 char *t;
  381.       Reg2 long beginning_of_this_line;
  382.       Reg3 bool this_line_is_command = FALSE;
  383. ***************
  384. *** 1302,1305 ****
  385. --- 1303,1310 ----
  386.       else
  387.       chmod(outname, filemode);
  388.       set_signals(1);
  389. + #else /* AMIGA */
  390. +     fprintf (stderr, "Ed scripts are not supported in the Amiga version of patch!\n");
  391. +     my_exit (20);
  392. + #endif /* AMIGA */
  393.   }
  394. diff -cr ram:patch-2.1/util.c dh1:patch-2.1/util.c
  395. *** ram:patch-2.1/util.c    Mon May 31 22:34:50 1993
  396. --- dh1:patch-2.1/util.c    Wed Jun 23 17:50:11 1993
  397. ***************
  398. *** 66,71 ****
  399. --- 66,72 ----
  400.       }
  401.   
  402.       if (stat(to, &filestat) == 0) {    /* output file exists */
  403. + #ifndef AMIGA
  404.       dev_t to_device = filestat.st_dev;
  405.       ino_t to_inode  = filestat.st_ino;
  406.       char *simplename = bakname;
  407. ***************
  408. *** 74,79 ****
  409. --- 75,90 ----
  410.           if (*s == '/')
  411.           simplename = s+1;
  412.       }
  413. + #else /* AMIGA */
  414. +     char *simplename = bakname;
  415. +     for (s=bakname; *s; s++) {
  416. +         if (*s == '/' || *s == ':')
  417. +         simplename = s+1;
  418. +     }
  419. + #endif /* AMIGA */
  420. + #ifndef AMIGA
  421.       /* Find a backup name that is not the same file.
  422.          Change the first lowercase char into uppercase;
  423.          if that isn't sufficient, chop off the first char and try again.  */
  424. ***************
  425. *** 87,92 ****
  426. --- 98,108 ----
  427.           Strcpy(simplename, simplename+1);
  428.       }
  429.       while (unlink(bakname) >= 0) ;    /* while() is for benefit of Eunice */
  430. + #else /* AMIGA */
  431. +         /* The stuff above is not very meaningful on the Amiga */
  432. +         Unlink(bakname);
  433. + #endif /* AMIGA */
  434.   #ifdef DEBUGGING
  435.       if (debug & 4)
  436.           say3("Moving %s to %s.\n", to, bakname);
  437. ***************
  438. *** 96,108 ****
  439. --- 112,132 ----
  440.            strerror(errno));
  441.           return -1;
  442.       }
  443. + #ifndef AMIGA
  444.       while (unlink(to) >= 0) ;
  445. + #else /* AMIGA */
  446. +         Unlink(to);
  447. + #endif /* AMIGA */
  448.       }
  449.   #ifdef DEBUGGING
  450.       if (debug & 4)
  451.       say3("Moving %s to %s.\n", from, to);
  452.   #endif
  453. + #ifndef AMIGA
  454.       if (rename(from, to) < 0) {        /* different file system? */
  455. + #else /* AMIGA */
  456. +     if (rename(from, to) != 0) {    /* different file system? */
  457. + #endif /* AMIGA */
  458.       Reg4 int tofd;
  459.       
  460.       tofd = creat(to, 0666);
  461. ***************
  462. *** 225,230 ****
  463. --- 249,255 ----
  464.       my_exit(1);
  465.   }
  466.   
  467. + #ifndef AMIGA
  468.   /* Get a response from the user, somehow or other. */
  469.   
  470.   void
  471. ***************
  472. *** 269,274 ****
  473. --- 294,334 ----
  474.       if (!tty2)
  475.       say1(buf);
  476.   }
  477. + #else  /* AMIGA */
  478. + /* The closest thing to "/dev/tty" on the Amiga is called "*".
  479. +    Open it in any case, because stdin may be redirected, and the
  480. +    user can't tell the difference if it's not redirected :-).
  481. +    I think this will work with the ARP shell under Kick 1.3 too,
  482. +    but I have no way to tell... */
  483. + void
  484. + ask(pat,arg1,arg2,arg3)
  485. + char *pat;
  486. + long arg1,arg2,arg3;
  487. + {
  488. +     int console;
  489. +     long r;
  490. +     Sprintf (buf, pat, arg1, arg2, arg3);
  491. +     console = open ("*", O_RDWR | O_CREAT);
  492. +     if (console >= NULL)
  493. +       {
  494. +         write (console, buf, strlen (buf));
  495. +         r = read (console, buf, sizeof (buf));
  496. +         Close (console);
  497. +       }
  498. +     else
  499. +       {                /* no terminal at all--default it */
  500. +     buf[0] = '\n';
  501. +     r = 1;
  502. +       }
  503. +     if (r <= 0)
  504. +         buf[0]=0;
  505. +     else
  506. +         buf[r]=0;
  507. + }
  508. + #endif  /* AMIGA */
  509.   #endif /* lint */
  510.   
  511.   /* How to handle certain events when not in a critical region. */
  512. ***************
  513. *** 278,294 ****
  514. --- 338,362 ----
  515.   int reset;
  516.   {
  517.   #ifndef lint
  518. + #ifndef AMIGA
  519.       static RETSIGTYPE (*hupval)(),(*intval)();
  520. + #else /* AMIGA */
  521. +     static RETSIGTYPE (*intval)();
  522. + #endif /* AMIGA */
  523.   
  524.       if (!reset) {
  525. + #ifndef AMIGA
  526.       hupval = signal(SIGHUP, SIG_IGN);
  527.       if (hupval != SIG_IGN)
  528.           hupval = (RETSIGTYPE(*)())my_exit;
  529. + #endif /* !AMIGA */
  530.       intval = signal(SIGINT, SIG_IGN);
  531.       if (intval != SIG_IGN)
  532.           intval = (RETSIGTYPE(*)())my_exit;
  533.       }
  534. + #ifndef AMIGA
  535.       Signal(SIGHUP, hupval);
  536. + #endif /* !AMIGA */
  537.       Signal(SIGINT, intval);
  538.   #endif
  539.   }
  540. ***************
  541. *** 299,305 ****
  542. --- 367,375 ----
  543.   ignore_signals()
  544.   {
  545.   #ifndef lint
  546. + #ifndef AMIGA
  547.       Signal(SIGHUP, SIG_IGN);
  548. + #endif /* !AMIGA */
  549.       Signal(SIGINT, SIG_IGN);
  550.   #endif
  551.   }
  552. ***************
  553. *** 337,343 ****
  554. --- 407,417 ----
  555.       if (dirvp < 0)
  556.       return;
  557.   
  558. + #ifndef AMIGA
  559.       strcpy(buf, "mkdir");
  560. + #else /* AMIGA */
  561. +     strcpy(buf, "makedir");
  562. + #endif /* AMIGA */
  563.       s = buf;
  564.       for (i=0; i<=dirvp; i++) {
  565.       struct stat sbuf;
  566. ***************
  567. *** 364,370 ****
  568. --- 438,446 ----
  569.       char *fullname;
  570.       char *name;
  571.       Reg1 char *t;
  572. + #ifndef AMIGA
  573.       char tmpbuf[200];
  574. + #endif /* !AMIGA */
  575.       int sleading = strip_leading;
  576.   
  577.       if (!at)
  578. ***************
  579. *** 375,395 ****
  580. --- 451,491 ----
  581.       if (debug & 128)
  582.       say4("fetchname %s %d %d\n",at,strip_leading,assume_exists);
  583.   #endif
  584. + #ifndef AMIGA
  585.       if (strnEQ(at, "/dev/null", 9))    /* so files can be created by diffing */
  586.       return Nullch;            /*   against /dev/null. */
  587. + #else /* AMIGA */
  588. +     /* This probably doesn't make much sense since you can't diff
  589. +        against NIL: on the Amiga... */
  590. +     if (strnEQ(at, "NIL:", 9))    /* so files can be created by diffing */
  591. +     return Nullch;            /*   against NIL:. */
  592. + #endif /* AMIGA */
  593.       name = fullname = t = savestr(at);
  594.   
  595. + #ifndef AMIGA
  596.       /* Strip off up to `sleading' leading slashes and null terminate.  */
  597.       for (; *t && !isspace(*t); t++)
  598.       if (*t == '/')
  599.           if (--sleading >= 0)
  600.           name = t+1;
  601. + #else /* AMIGA */
  602. +     /* Strip off up to `sleading' leading slashes or colons and null terminate.  */
  603. +     /* Please note that filenames with spaces are not handled correctly due
  604. +        to the output format of diff and the assumptions that patch has to
  605. +        make because of this output format. */
  606. +     for (; *t && !isspace(*t); t++)
  607. +     if (*t == '/' || *t == ':')
  608. +         if (--sleading >= 0)
  609. +         name = t+1;
  610. + #endif /* AMIGA */
  611.       *t = '\0';
  612.   
  613.       /* If no -p option was given (957 is the default value!),
  614.          we were given a relative pathname,
  615.          and the leading directories that we just stripped off all exist,
  616.          put them back on.  */
  617. + #ifndef AMIGA
  618.       if (strip_leading == 957 && name != fullname && *fullname != '/') {
  619.       name[-1] = '\0';
  620.       if (stat(fullname, &filestat) == 0 && S_ISDIR (filestat.st_mode)) {
  621. ***************
  622. *** 397,406 ****
  623. --- 493,512 ----
  624.           name=fullname;
  625.       }
  626.       }
  627. + #else /* AMIGA */
  628. +     if (strip_leading == 957 && name != fullname && strchr(fullname,':') == NULL) {
  629. +     name[-1] = '\0';
  630. +     if (stat(fullname, &filestat) == 0 && S_ISDIR (filestat.st_mode)) {
  631. +         name[-1] = '/';
  632. +         name=fullname;
  633. +     }
  634. +     }
  635. + #endif /* AMIGA */
  636.   
  637.       name = savestr(name);
  638.       free(fullname);
  639.   
  640. + #ifndef AMIGA
  641.       if (stat(name, &filestat) && !assume_exists) {
  642.       char *filebase = basename(name);
  643.       int pathlen = filebase - name;
  644. ***************
  645. *** 418,423 ****
  646. --- 524,533 ----
  647.       free(name);
  648.       name = Nullch;
  649.       }
  650. + #else /* AMIGA */
  651. +     if (stat(name, &filestat) && !assume_exists)
  652. +         name = Nullch;
  653. + #endif /* AMIGA */
  654.   
  655.       return name;
  656.   }
  657.